package com.ff.service;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

public interface OssService {

	/**
	 * 创建文件夹
	 * @param folderName
	 * @return
	 */
	public boolean createFolder(String folderName);

	/**
	 * 根据key 获取文件路径
	 * @param key
	 * @return
	 */
	public String getPictureUri(String key);

	/**
	 * 删除文件
	 * @param key
	 * @return
	 */
	public boolean deleteFile(String key);

	/**
	 * 清空bucket
	 */
	public void clearBucket();
	
	/**
	 * 
	 * @Title: uploadFiles
	 * @Description: 文件上传
	 * @param multipartFile
	 * @return
	 * @return: String[]
	 */
	String[] uploadFiles(MultipartFile multipartFile);

	/**
	 * 
	 * @Title: uploadFiles
	 * @Description: 文件上传
	 * @param mapfiles
	 * @return
	 * @return: String[]
	 */
	String[] uploadFiles(Map<String, MultipartFile> mapfiles);
	
	/**
	 * 浏览器文件上传 MultipartFile 多个
	 * @param folderName 文件夹名称
	 * @param mapfiles 浏览器上传的文件
	 * @return
	 */
	String[] uploadFiles(String folderName, Map<String, MultipartFile> mapfiles);
	
	/**
	 * 上传文件
	 * @param key 文件路径
	 * @param contentType 文件类型
	 * @param bytes 文件流
	 * @return
	 */
	public String uploadFile(String key, String contentType, byte[] bytes);
	
	/**
	 * @param folderName 文件夹名称
	 * @param fileName 文件名
	 * @param file 文件
	 * @return
	 */
	String uploadFile(String folderName, String fileName, File file);
	
	/**
	 * @param folderName 文件夹名称
	 * @param file 文件
	 * @return
	 */
	String uploadFile(String folderName, File file);
	
	/**
	 * @param file 文件
	 * @return
	 */
	String uploadFile(File file);

	/**
	 * @Title: getPrivatePicUri
	 * @Description: 通过key 获取私有Object访问链接
	 * @param key
	 * @return
	 * @return: String
	 */
	public String getPrivatePicUri(String key);

	/**
	 * @Title: createPolicy
	 * @Description: TODO
	 * @return
	 * @return: String
	 * @throws UnsupportedEncodingException 
	 */
	public String createPolicy() throws UnsupportedEncodingException;
	
}
